//
//  Status.swift
//  WeiBo_One
//
//  Created by 李炎 on 15/10/27.
//  Copyright © 2015年 蜡笔小炎. All rights reserved.
//

import UIKit

class Status: NSObject {
    
    // 微博创建时间
    var created_at: String?
    // 微博ID
    var id: Int = 0
    // 微博信息内容
    var text: String?
    // 微博来源
    var source: String?
    // 用户模型
    var user: User?
    //缩略图字典数组地址
    var pic_urls: [[String: String]]?
    
    
    // 构造方法
    init(dict: [String: AnyObject]) {
        super.init()
        
        setValuesForKeysWithDictionary(dict)
    }
    
    // 由于user字段被 KVO 设置成了字典，重写setValue函数设置user
    override func setValue(value: AnyObject?, forKey key: String) {
        // TODO: - 此处需要理解
        // 判断key 是否是 user
        if key == "user" {
            if let dict = value as? [String: AnyObject] {
                user = User(dict: dict)
            }
            return
        }
        super.setValue(value, forKey: key)
    }
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}

    // 模型必写描述方法 description
    override var description: String {
        let keys = ["created_at", "id", "text", "source", "user", "pic_urls"]
        
        return dictionaryWithValuesForKeys(keys).description
    }
    
    //MARK: - 类中类 User
    class User: NSObject {
        // 用户UID
        var id: Int = 0
        // 用户昵称
        var screen_name: String?
        // 用户头像地址
        var profile_image_url: String?
        // 认证类型,-1:没有认证  0:认证用户  2，3，5:企业认证  220:达人
        var verified_type: Int = 0
        // 会员等级
        var mbrank: Int = 0
        // 初始化模型
        init(dict: [String: AnyObject]) {
            super.init()
            
            setValuesForKeysWithDictionary(dict)
        }
        override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
        // 重写描述
        override var description: String {
            let keys = ["id", "screen_name", "profile_image_url", "verified_type", "mbrank"]
            
            return dictionaryWithValuesForKeys(keys).description
        }
        
    }
}










